package com.tiancheng.trade.merchant.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.tiancheng.trade.merchant.enums.MerchantAccountTypeEnum;
import com.tiancheng.trade.merchant.enums.MerchantScenarioEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import jakarta.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@TableName(value = "merchant")
public class Merchant extends BaseModel {
    /**
     * 机构编码/机构ID
     */
    @NotBlank(message = "机构编码不允许为空")
    private String organizationCode;
    /**
     * 机构名称
     */
    @TableField(exist = false)
    private String organizationName;
    /**
     * 商户编码/商户ID
     */
    private String merchantCode;
    /**
     * 商户名称
     */
    @NotBlank
    private String merchantName;
    /**
     * 备注
     */
    private String remark;

    @TableField(exist = false)
    private List<MerchantPaymentChannel> channelList;
    /**
     * 商户状态：0冻结使用、1审核通过、2审核失败、3保存
     */
    private int state;
    /**
     * 联系电话
     */
    private String phone;
    /**
     * 商家头图
     */
    private String image;
    /**
     * 业务侧业务场景标识
     *
     * @see MerchantScenarioEnum
     */
    private String scene;
    /**
     * 收入确认
     */
    private String revenueType;
    /**
     * 平台收入金额
     */
    private Integer platformRevenueAmount;
    /**
     * 平台收入比例
     */
    private BigDecimal platformRevenueScale;

    /**
     * 机构名称
     */
    @TableField(exist = false)
    private String revenueTypeName;

    /**
     * 结算类型:清分/结算
     */
    @NotBlank
    private String settlementType;

    /**
     * 商户类
     * @see com.tiancheng.trade.merchant.enums.MerchantTypeEnums
     */
    private String merchantType;
    /**
     * 法人身份证姓名
     */
    private String legalName;
    /**
     * 法人身份证号
     */
    private String legalIdcardNo;
    /**
     * 法人手机号
     */
    private String legalMobile;
    /**
     * 法人邮箱
     */
    private String legalEmail;
    /**
     * 法人证件开始日期:yyyy-MM-dd
     */
    private String legalCardBeginDate;
    /**
     * 法人代表证件截止日期:yyyy-MM-dd
     */
    private String legalCardDeadline;
    /**
     * 法人性别,0-未知的性别  1-男性 2-女性 5-女性改（变）为男性 6-男性改（变）为女性 9-未说明的性别
     */
    private Integer legalSex;
    /**
     * 法人职业 企业类型为小微商户时必填,0-各类专业、技术人员 1-国家机关、党群组织、企事业单位的负责人 2-办事人员和有关人员 3-商业工作人员 4-服务性工作人员 5-农林牧渔劳动者 6-生产工作、运输工作和部分体力劳动者 7-不便分类的其他劳动者
     * @see com.tiancheng.trade.merchant.enums.LegalOccupationEnums
     */
    private Integer legalOccupation;
    /**
     * 法人住址
     */
    private String legalAddress;
    /**
     * 社会信用统一代码/营业执照号,00：企业商户（必填）01：个人工商户（必填）02：小微商户（选填） 03：机关事业单位或社会团体（必填）
     */
    private String shopLic;

}
